﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OperationPlugins.Handlers
{
    public interface IStaticHandler
    {
        /// <summary>
        /// Handles an object.
        /// </summary>
        /// <param name="value">The object to be handled.</param>
        /// <param name="operation">Identifies the current operation.</param>
        /// <param name="branch">Identifies the current branch.</param>
        /// <param name="contextFactory">The IOperationContextFactory to be used.</param>
        void Invoke(object value, OperationId operation, BranchId branch, IOperationContextFactory contextFactory);
    }
}
